// 获取当前时间
const date = new Date();
// 年
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
const hour = date.getHours();
const minute = date.getMinutes();
// 当月第一天date
const getFirstDate = () => {
	let months = month > 9 ? month : '0' + month;
	return `${year}-${months}-01`;
}

// 当月当天date
const getDates = () => {
	let months = month > 9 ? month : '0' + month;
	let days = day > 9 ? day : '0' + day;
	return `${year}-${months}-${days}`;
}

// 当月明天date
// const getDateTomorrow = () => {
//   let months = month > 9 ? month : '0' + month;
//   let days = day > 9 ? day : '0' + day;
//   let tomorrow = parseInt(day) + 1;  // 将 day 转换为数字后加 1
//   return `${year}-${months}-${tomorrow > 9 ? tomorrow : '0' + tomorrow}`; // 确保天数是两位数
// }

// 当月当天date
const getDateTomorrow = () => {
  let months = month > 9 ? month : '0' + month;
  let days = day > 9 ? day : '0' + day;
  let tomorrow = parseInt(day);  // 将 day 转换为数字后加 1
  return `${year}-${months}-${tomorrow > 9 ? tomorrow : '0' + tomorrow}`; // 确保天数是两位数
}

const getDateTomorrows = () => {
  // 如果是最后一天，月份就从+1开始，否则就表示默认当月
  let months = isLastDayOfMonth() ? date.getMonth() + 1 : date.getMonth() + 1;

  // 如果是最后一天，设置日期为1号，否则计算后天日期
  let days = isLastDayOfMonth() ? 1 : date.getDate() + 1; // 明天+1

  // 确保月份是两位数
  if (months < 10) {
    months = "0" + String(months);
  }

  // 确保日期是两位数
  if (days < 10) {
    days = "0" + String(days);
  }

  return `${year}-${months}-${days}`;
}

// const getDateTomorrows = () => {
//   // 如果是最后一天，月份就从+1开始，否则就表示默认当月
//   let months = isLastDayOfMonth() ? date.getMonth() + 2 : date.getMonth() + 1;

//   // 如果是最后一天，设置日期为1号，否则计算后天日期
//   let days = isLastDayOfMonth() ? 1 : date.getDate() + 2; // 后天是当前日期+2

//   // 确保月份是两位数
//   if (months < 10) {
//     months = "0" + String(months);
//   }

//   // 确保日期是两位数
//   if (days < 10) {
//     days = "0" + String(days);
//   }

//   return `${year}-${months}-${days}`;
// }


const isLastDayOfMonth = () => {
	let flag = false;
	let months = date.getMonth() + 1;
	let new_year = date.getFullYear(); //取当前的年份
	let new_month = months++; //取下一个月的第一天，方便计算（最后一天不固定）

	if (months > 12) { //如果当前大于12月，则年份转到下一年
		new_month -= 12; //月份减
		new_year++; //年份增
	}
	let new_date = new Date(new_year, new_month, 1); //取当年当月中的第一天

	let month_last_day = (new Date(new_date.getTime() - 1000 * 60 * 60 * 24)).getDate();

	if (day == month_last_day) {
		flag = true;
	}
	return flag;
}

// 当月最后一天date
const getFinallyDate = () => {
	let months = month > 9 ? month : '0' + month;
	let dates = new Date(year, month, 0);
	let finallys = dates.getDate(); //最后一天
	return `${year}-${months}-${finallys}`;
}
// 当前时间08:00:00   提前半小时
const getHourMinute = () => {
	let fiflterhours = minute >= 30 ? hour + 1 : hour;
	let hours = fiflterhours > 9 ? fiflterhours : '0' + fiflterhours;
	let minutes = minute >= 30 ? '00' : '30';
	return `${hours}:${minutes}:00`;
}

// 提前半小时
const getFiflterhours = () => {
	let fiflterhours = minute >= 30 ? hour++ : hour;
	let minHours = fiflterhours > 9 ? fiflterhours : '0' + fiflterhours;
	return minHours;
};

// 时间戳转化时间
const getRelativeTime = (timestamp) => {
	const date = new Date(timestamp);

	const year = date.getFullYear();
	const month = date.getMonth() + 1;
	const day = date.getDate();
	const hours = date.getHours();
	const minutes = date.getMinutes();
	// const seconds = date.getSeconds();

	const formattedDate =
	`${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`; // 日期：2024-08-27
	const formattedTime = formattedDate + ' ' +
		`${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}`;
	// const formattedTime = `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${seconds < 10 ? '0' + seconds : seconds}`; // 时间：16:35:28
	return formattedTime;
}

export {
	getFirstDate,
	getDates,
	getFinallyDate,
	getHourMinute,
	getFiflterhours,
	getRelativeTime,
	getDateTomorrow,
	getDateTomorrows
}